Idea of the Research

In this project I am going to apply the Schwartz’s theory “Basic Values circle” (1992) to study human values of people in Sweden. I decided to consider the case of Sweden since Swedish society is based on two main principles - equality and solidarity among people, which reflects care for other people. Besides, there is a Swedish philosophy “Lagom”, which roughly translates to “not too much, not too little” - having what you need and nothing more. Hence, people there prefer moderation and restraint in every thing. I hypothesize that swedes have strong preferences for values of self-transcendence, and at the same time they do not like to show individual excellence in accordance with their philosophy “Lagom” - values of self-enhancement are not close to them. Thus, Sweden is an interesting case to apply Schwartz’s theory “Basic Values circle” (1992).

Data: European Social Survey (Round 9 - 2018): https://ess-search.nsd.no/en/study/bdc7c350-1029-4cb3-9d5e-53f668b8fa74

Desciption of variables

Below you can see a description of items and a meaning of corresponding values.

Data Preprocessing

library(dplyr)
library(foreign)
library(haven)
library(ggplot2)
all_df <- read_sav("ESS.sav")
all_df <- all_df %>% haven::as_factor()

df <- all_df %>%
  filter(cntry == "Sweden")

df <- df %>% 
  dplyr::select(- name, - essround, - edition, - proddate, - idno, - cntry, - dweight, -pspwght, - pweight, -anweight, - prob, - stratum, - psu)

df <- na.omit(df)
df <- droplevels(df) #drop missing values

EDA

Let’s explore the distribution of each 21 value item one by one to understand what human values appeal to swedes.

Universalism

Most of the swedes think that universalism is important.

Ipeqopt

He thinks it is important that every person in the world should be treated equally. He believes everyone should have equal opportunities in life.

universalism_barplot  <- df %>% 
  group_by(ipeqopt) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(universalism_barplot, aes(x = ipeqopt, y = percentage, fill = ipeqopt)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="Everyone should have equal opportunities in life") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

lpudrst

It is important to him to listen to people who are different from him. Even when he disagrees with them, he still wants to understand them.

universalism_barplot  <- df %>% 
  group_by(ipudrst) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(universalism_barplot, aes(x = ipudrst, y = percentage, fill = ipudrst)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="It is important to him to listen to people who are different from him") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Impenv

He strongly believes that people should care for nature. Looking after the environment is important to him.

impenv_barplot  <- df %>% 
  group_by(impenv) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(impenv_barplot, aes(x = impenv, y = percentage, fill = impenv)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="He strongly believes that people should care for nature") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Benevolence

Benevolence appeals to the most swedes. For swedes (96%) it is especially important to devote himself to people close to him

Iphlppl

It is very important to him to help the people around him. He wants to care for their well-being.

iphlppl_barplot  <- df %>% 
  group_by(iphlppl) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(iphlppl_barplot, aes(x = iphlppl, y = percentage, fill = iphlppl)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="It is very important to him to help the people around him") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Iplylfr

It is important to him to be loyal to his friends. He wants to devote himself to people close to him.

iplylfr_barplot  <- df %>% 
  group_by(iplylfr) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(iplylfr_barplot, aes(x = iplylfr, y = percentage, fill = iplylfr)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="He wants to devote himself to people close to him") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Tradition

As for modesty, most swedes (~75%) indeed try not to draw attention to themselves. As for tradition, it is not to highlty valued as modesty, but still more than a half of swedes tries to follow the custom handed down by religion or family.

Ipmodst

It is important to him to be humble and modest. He tries not to draw attention to himself.

ipmodst_barplot  <- df %>% 
  group_by(ipmodst) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(ipmodst_barplot, aes(x = ipmodst, y = percentage, fill = ipmodst)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="It is important to him to be humble and modest") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Imptrad

Tradition is important to him. He tries to follow the custom handed down by his religion or his family.

imptrad_barplot  <- df %>% 
  group_by(imptrad) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(imptrad_barplot, aes(x = imptrad, y = percentage, fill = imptrad)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="Tradition is important to him") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Conformity

As for conformity value, swedes split up approximately equally.

Ipfrule

He believes that people should do what they are told. He thinks people should follow rules at all times, even when no one is watching.

ipfrule_barplot  <- df %>% 
  group_by(ipfrule) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(ipfrule_barplot, aes(x = ipfrule, y = percentage, fill = ipfrule)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="He believes that people should do what they are told") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Ipbhprp

It is important to him always to behave properly. He wants to avoid doing anything people would say is wrong.

ipbhprp_barplot  <- df %>% 
  group_by(ipbhprp) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(ipbhprp_barplot, aes(x = ipbhprp, y = percentage, fill = ipbhprp)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="He wants to avoid doing anything people would say is wrong") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Security

For a little more than a half of swedes security is important.

Impsafe

It is important to him to live in secure surroundings. He avoids anything that might endanger his safety.

impsafe_barplot  <- df %>% 
  group_by(impsafe) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(impsafe_barplot, aes(x = impsafe, y = percentage, fill = impsafe)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="He avoids anything that might endanger his safety") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Ipstrgv

It is important to him that the government ensures his safety against all threats. He wants the state to be strong so it can defend its citizens.

ipstrgv_barplot  <- df %>% 
  group_by(ipstrgv) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(ipstrgv_barplot, aes(x = ipstrgv, y = percentage, fill = ipstrgv)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="He wants the state to be strong so it can defend its citizens") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Power

As expected, most swedes (more than 80%) do not want to have a lot of money and expensive things. Lagom philosophy indeed reflects values of most swedes. As for respect from other people, swedes split up equally.

Imprich

It is important to him to be rich. He wants to have a lot of money and expensive things.

imprich_barplot  <- df %>% 
  group_by(imprich) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(imprich_barplot, aes(x = imprich, y = percentage, fill = imprich)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="It is important to him to be rich") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Iprspot

It is important to him to get respect from others. He wants people to do what he says.

iprspot_barplot  <- df %>% 
  group_by(iprspot) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(iprspot_barplot, aes(x = iprspot, y = percentage, fill = iprspot)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="It is important to him to get respect from others") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Achievement

Values of achievement also does not appeals most swedes (more than a half).

Ipshabt

It is important to him to show his abilities. He wants people to admire what he does.

ipshabt_barplot  <- df %>% 
  group_by(ipshabt) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(ipshabt_barplot, aes(x = ipshabt, y = percentage, fill = ipshabt)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="It is important to him to get respect from others") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Ipsuces

Being very successful is important to him. He hopes people will recognize his achievements.

ipsuces_barplot  <- df %>% 
  group_by(ipsuces) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(ipsuces_barplot, aes(x = ipsuces, y = percentage, fill = ipsuces)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="Being very successful is important to him") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Hedonism

Having a good time and fun is important for more than 60% of swedes.

Ipgdtim

Having a good time is important to him. He likes to “spoil” himself.

ipgdtim_barplot  <- df %>% 
  group_by(ipgdtim) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(ipgdtim_barplot, aes(x = ipgdtim, y = percentage, fill = ipgdtim)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="Having a good time is important to him") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Impfun

He seeks every chance he can to have fun. It is important to him to do things that give him pleasure.

impfun_barplot  <- df %>% 
  group_by(impfun) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(impfun_barplot, aes(x = impfun, y = percentage, fill = impfun)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="He seeks every chance he can to have fun") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Stimulation

About 60% of swedes like doing new things in life, but only ~ 40% looks for adventures and likes to take risks.

Impdiff

He likes surprises and is always looking for new things to do. He thinks it is important to do lots of different things in life.

impdiff_barplot  <- df %>% 
  group_by(impdiff) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(impdiff_barplot, aes(x = impdiff, y = percentage, fill = impdiff)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="He likes surprises and is always looking for new things to do") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Ipadvnt

He looks for adventures and likes to take risks. He wants to have an exciting life.

ipadvnt_barplot  <- df %>% 
  group_by(ipadvnt) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(ipadvnt_barplot, aes(x = ipadvnt, y = percentage, fill = ipadvnt)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="He looks for adventures and likes to take risks") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Self-direction

Self-direction is very important for most swedes.

Ipcrtiv

Thinking up new ideas and being creative is important to him. He likes to do things in his own original way.

ipcrtiv_barplot  <- df %>% 
  group_by(ipcrtiv) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(ipcrtiv_barplot, aes(x = ipcrtiv, y = percentage, fill = ipcrtiv)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="Thinking up new ideas and being creative is important to him") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

Impfree

It is important to him to make his own decisions about what he does. He likes to be free and not depend on others.

impfree_barplot  <- df %>% 
  group_by(impfree) %>% 
 dplyr::summarize(count = n()) %>%  
 mutate(percentage = count/sum(count)) 

ggplot(impfree_barplot, aes(x = impfree, y = percentage, fill = impfree)) + 
  geom_bar(stat='identity') + 
  geom_text(aes(label=scales::percent(percentage)), position = position_stack(vjust = .5)) +
  scale_y_continuous(labels = scales::percent) +
  labs(x="", 
       y="",
       title="He likes to be free and not depend on others") +
  scale_fill_manual("Level of education", values = c('#6a994e', '#a7c957', '#f2e8cf', '#ff6f59', '#db504a', '#bc4749')) + 
  theme_classic() + 
  theme(legend.position="none")

CFA

First of all, we need to run CFA to check whether the value theory of Schwartz (1992) can be validated on the swedish data.

Make all variables numeric:

df[sapply(df, is.factor)] <- lapply(df[sapply(df, is.factor)], as.numeric) #make variables numeric

Syntax

Create a syntax for the respective theoretical model

library(lavaan)
model1 <- '
universalism =~ ipeqopt + ipudrst + impenv 
benevolence =~ iphlppl + iplylfr
tradition =~ ipmodst + imptrad 
conformity =~ ipfrule + ipbhprp
security =~ impsafe + ipstrgv
power =~ imprich + iprspot
achievement =~ ipshabt + ipsuces
hedonism =~ ipgdtim + impfun
stimulation =~ impdiff + ipadvnt
self_direction =~ ipcrtiv + impfree
'

Fitting

fit <- cfa(model1, data = df)

summary(fit, standardized=TRUE, fit.measures=TRUE, modindices=FALSE)
## lavaan 0.6-12 ended normally after 65 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        87
## 
##   Number of observations                          1462
## 
## Model Test User Model:
##                                                       
##   Test statistic                               799.391
##   Degrees of freedom                               144
##   P-value (Chi-square)                           0.000
## 
## Model Test Baseline Model:
## 
##   Test statistic                              6520.033
##   Degrees of freedom                               210
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.896
##   Tucker-Lewis Index (TLI)                       0.849
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)             -45441.480
##   Loglikelihood unrestricted model (H1)     -45041.785
##                                                       
##   Akaike (AIC)                               91056.961
##   Bayesian (BIC)                             91516.978
##   Sample-size adjusted Bayesian (BIC)        91240.607
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.056
##   90 Percent confidence interval - lower         0.052
##   90 Percent confidence interval - upper         0.060
##   P-value RMSEA <= 0.05                          0.006
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.047
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Latent Variables:
##                     Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   universalism =~                                                        
##     ipeqopt            1.000                               0.502    0.520
##     ipudrst            1.192    0.086   13.802    0.000    0.599    0.614
##     impenv             0.859    0.075   11.475    0.000    0.431    0.436
##   benevolence =~                                                         
##     iphlppl            1.000                               0.640    0.699
##     iplylfr            0.774    0.047   16.441    0.000    0.496    0.596
##   tradition =~                                                           
##     ipmodst            1.000                               0.474    0.402
##     imptrad            0.876    0.080   11.019    0.000    0.415    0.293
##   conformity =~                                                          
##     ipfrule            1.000                               0.806    0.585
##     ipbhprp            1.037    0.063   16.336    0.000    0.836    0.642
##   security =~                                                            
##     impsafe            1.000                               0.790    0.581
##     ipstrgv            0.791    0.060   13.175    0.000    0.625    0.490
##   power =~                                                               
##     imprich            1.000                               0.485    0.466
##     iprspot            1.462    0.099   14.802    0.000    0.709    0.560
##   achievement =~                                                         
##     ipshabt            1.000                               0.979    0.742
##     ipsuces            0.976    0.044   22.191    0.000    0.955    0.750
##   hedonism =~                                                            
##     ipgdtim            1.000                               0.825    0.661
##     impfun             0.930    0.054   17.193    0.000    0.768    0.675
##   stimulation =~                                                         
##     impdiff            1.000                               0.941    0.707
##     ipadvnt            1.055    0.051   20.508    0.000    0.993    0.726
##   self_direction =~                                                      
##     ipcrtiv            1.000                               0.560    0.494
##     impfree            0.874    0.073   11.946    0.000    0.490    0.459
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   universalism ~~                                                       
##     benevolence       0.264    0.021   12.448    0.000    0.821    0.821
##     tradition         0.139    0.020    7.017    0.000    0.582    0.582
##     conformity        0.091    0.020    4.492    0.000    0.224    0.224
##     security          0.171    0.023    7.329    0.000    0.430    0.430
##     power            -0.001    0.013   -0.083    0.934   -0.004   -0.004
##     achievement       0.087    0.021    4.110    0.000    0.177    0.177
##     hedonism          0.157    0.021    7.481    0.000    0.379    0.379
##     stimulation       0.147    0.022    6.675    0.000    0.312    0.312
##     self_direction    0.172    0.020    8.677    0.000    0.613    0.613
##   benevolence ~~                                                        
##     tradition         0.233    0.024    9.668    0.000    0.770    0.770
##     conformity        0.143    0.025    5.838    0.000    0.277    0.277
##     security          0.240    0.028    8.715    0.000    0.475    0.475
##     power             0.071    0.017    4.297    0.000    0.229    0.229
##     achievement       0.161    0.026    6.214    0.000    0.257    0.257
##     hedonism          0.273    0.026   10.537    0.000    0.517    0.517
##     stimulation       0.192    0.026    7.396    0.000    0.319    0.319
##     self_direction    0.200    0.022    8.935    0.000    0.557    0.557
##   tradition ~~                                                          
##     conformity        0.467    0.038   12.361    0.000    1.222    1.222
##     security          0.382    0.036   10.584    0.000    1.021    1.021
##     power             0.064    0.020    3.192    0.001    0.277    0.277
##     achievement      -0.070    0.031   -2.298    0.022   -0.151   -0.151
##     hedonism          0.095    0.028    3.407    0.001    0.244    0.244
##     stimulation      -0.026    0.030   -0.856    0.392   -0.058   -0.058
##     self_direction    0.005    0.024    0.213    0.832    0.019    0.019
##   conformity ~~                                                         
##     security          0.509    0.043   11.893    0.000    0.798    0.798
##     power             0.282    0.027   10.352    0.000    0.721    0.721
##     achievement       0.271    0.036    7.615    0.000    0.343    0.343
##     hedonism          0.098    0.030    3.226    0.001    0.147    0.147
##     stimulation      -0.013    0.032   -0.398    0.691   -0.017   -0.017
##     self_direction    0.032    0.026    1.221    0.222    0.071    0.071
##   security ~~                                                           
##     power             0.220    0.026    8.414    0.000    0.574    0.574
##     achievement       0.300    0.038    7.888    0.000    0.388    0.388
##     hedonism          0.198    0.034    5.881    0.000    0.304    0.304
##     stimulation      -0.072    0.035   -2.043    0.041   -0.097   -0.097
##     self_direction    0.109    0.029    3.768    0.000    0.246    0.246
##   power ~~                                                              
##     achievement       0.451    0.033   13.504    0.000    0.950    0.950
##     hedonism          0.211    0.024    8.852    0.000    0.528    0.528
##     stimulation       0.204    0.025    8.172    0.000    0.448    0.448
##     self_direction    0.148    0.020    7.338    0.000    0.545    0.545
##   achievement ~~                                                        
##     hedonism          0.372    0.036   10.283    0.000    0.460    0.460
##     stimulation       0.480    0.040   11.897    0.000    0.521    0.521
##     self_direction    0.298    0.032    9.372    0.000    0.543    0.543
##   hedonism ~~                                                           
##     stimulation       0.566    0.041   13.693    0.000    0.729    0.729
##     self_direction    0.295    0.030    9.825    0.000    0.639    0.639
##   stimulation ~~                                                        
##     self_direction    0.430    0.036   12.073    0.000    0.816    0.816
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .ipeqopt           0.681    0.031   22.287    0.000    0.681    0.730
##    .ipudrst           0.592    0.032   18.785    0.000    0.592    0.623
##    .impenv            0.794    0.033   24.116    0.000    0.794    0.810
##    .iphlppl           0.430    0.028   15.549    0.000    0.430    0.512
##    .iplylfr           0.445    0.021   20.884    0.000    0.445    0.645
##    .ipmodst           1.167    0.060   19.349    0.000    1.167    0.839
##    .imptrad           1.832    0.075   24.401    0.000    1.832    0.914
##    .ipfrule           1.248    0.059   20.978    0.000    1.248    0.658
##    .ipbhprp           1.000    0.055   18.258    0.000    1.000    0.588
##    .impsafe           1.222    0.068   18.068    0.000    1.222    0.662
##    .ipstrgv           1.237    0.056   22.277    0.000    1.237    0.760
##    .imprich           0.847    0.036   23.373    0.000    0.847    0.783
##    .iprspot           1.102    0.056   19.542    0.000    1.102    0.686
##    .ipshabt           0.781    0.046   17.060    0.000    0.781    0.449
##    .ipsuces           0.711    0.043   16.595    0.000    0.711    0.438
##    .ipgdtim           0.880    0.048   18.228    0.000    0.880    0.564
##    .impfun            0.702    0.040   17.425    0.000    0.702    0.544
##    .impdiff           0.885    0.049   18.071    0.000    0.885    0.500
##    .ipadvnt           0.884    0.052   16.971    0.000    0.884    0.473
##    .ipcrtiv           0.973    0.048   20.267    0.000    0.973    0.756
##    .impfree           0.897    0.041   21.812    0.000    0.897    0.789
##     universalism      0.252    0.029    8.618    0.000    1.000    1.000
##     benevolence       0.410    0.035   11.721    0.000    1.000    1.000
##     tradition         0.224    0.051    4.438    0.000    1.000    1.000
##     conformity        0.650    0.065   10.023    0.000    1.000    1.000
##     security          0.624    0.072    8.696    0.000    1.000    1.000
##     power             0.235    0.031    7.621    0.000    1.000    1.000
##     achievement       0.958    0.068   14.180    0.000    1.000    1.000
##     hedonism          0.681    0.060   11.442    0.000    1.000    1.000
##     stimulation       0.885    0.067   13.134    0.000    1.000    1.000
##     self_direction    0.314    0.044    7.051    0.000    1.000    1.000

Interpretation

  • Tucker-Lewis Index (TLI) is close to good (0.85)
  • Comparative Fit Index (CFI) is also close to good (0.90)
  • RMSEA index equals to 0.056 (<.08 acceptable, <.05 excellent), which is good
  • SRMR equals to 0.047, which is excellent

-> In accordance with above indexes, the model is good, but

P-value of Chi-square equals to 0.000, which says to us that the model is different from data, but all important indexes confirmed that the model is good, thus, we can be sure in this model.

  • As for factor loadings, all of them are significant according to p-values (0.000).

Thus, we can proceed with this theoretical model and our data on peoples’ values in Sweden.

Internal Reliability

In accordance with the article “Measuring the 4 Higher-Order Values in Schwartz’s Theory: A Validation of a 17-Item Inventory”, I should also check internal reliability of scales with Cronbach’s alpha (𝛼).

Universalism

library(ltm)

df_universalism <- df %>%
  dplyr::select(ipeqopt, ipudrst)

cronbach.alpha(df_universalism)
## 
## Cronbach's alpha for the 'df_universalism' data-set
## 
## Items: 2
## Sample units: 1462
## alpha: 0.499

Benevolence

df_benevolence <- df %>%
  dplyr::select(iphlppl, iplylfr)

cronbach.alpha(df_benevolence)
## 
## Cronbach's alpha for the 'df_benevolence' data-set
## 
## Items: 2
## Sample units: 1462
## alpha: 0.586

Tradition

df_tradition <- df %>%
  dplyr::select(ipmodst, imptrad)

cronbach.alpha(df_tradition)
## 
## Cronbach's alpha for the 'df_tradition' data-set
## 
## Items: 2
## Sample units: 1462
## alpha: 0.208
  • Very poor result.

Security

df_security <- df %>%
  dplyr::select(impsafe, ipstrgv)

cronbach.alpha(df_security)
## 
## Cronbach's alpha for the 'df_security' data-set
## 
## Items: 2
## Sample units: 1462
## alpha: 0.443

Power

df_power <- df %>%
  dplyr::select(imprich, iprspot)

cronbach.alpha(df_power)
## 
## Cronbach's alpha for the 'df_power' data-set
## 
## Items: 2
## Sample units: 1462
## alpha: 0.408

Achievement

df_achievement <- df %>%
  dplyr::select(ipshabt, ipsuces)

cronbach.alpha(df_achievement)
## 
## Cronbach's alpha for the 'df_achievement' data-set
## 
## Items: 2
## Sample units: 1462
## alpha: 0.715

Hedonism

df_hedonism <- df %>%
  dplyr::select(ipgdtim, impfun)

cronbach.alpha(df_hedonism)
## 
## Cronbach's alpha for the 'df_hedonism' data-set
## 
## Items: 2
## Sample units: 1462
## alpha: 0.615

Stimulation

df_stimulation <- df %>%
  dplyr::select(impdiff, ipadvnt)

cronbach.alpha(df_stimulation)
## 
## Cronbach's alpha for the 'df_stimulation' data-set
## 
## Items: 2
## Sample units: 1462
## alpha: 0.678

Self-direction

df_self_direction <- df %>%
  dplyr::select(ipcrtiv, impfree)

cronbach.alpha(df_self_direction)
## 
## Cronbach's alpha for the 'df_self_direction' data-set
## 
## Items: 2
## Sample units: 1462
## alpha: 0.369

Most of the Cronbach’s alpha results are lower than 0.7, which is not acceptable. Thus, it is better to proceed working with all 21 variables, although CFA model was acceptable.

Unfolding

Preparation for unfolding

Centering by rows

  • We need to apply ipsatization for our data to make estimations of values more objective, since some people are prone to agree with every statement, while others, on the contrary, they tend to disagree with every given item.
library(Seurat)
matrix <- data.matrix(df)
matrix_centered <- FastRowScale(matrix, center = TRUE, scale = FALSE)
df_centered <- as.data.frame(matrix_centered)
min(df_centered)
## [1] -3.52381

After centering rows, we get negative values, which is not acceptable for unfolding. Let’s add 4 to all values to make them non-negative

Make non-negative

df_ready <- df_centered + 4
min(df_ready)
## [1] 0.4761905

Great!

Next crucial step is to transform our data from similarities to dissimilarities

From similarities to dissimilarities

library(smacof)
sd <- sim2diss(df_ready, method = "reverse")

As we work with rectangular matrix, we need to apply unfolding.

Unfolding

Stress-1 value

values_unf <- unfolding(sd)
values_unf
## 
## Call: unfolding(delta = sd)
## 
## Model:               Rectangular smacof 
## Number of subjects:  1462 
## Number of objects:   21 
## Transformation:      none 
## Conditionality:      matrix 
## 
## Stress-1 value:    0.179169 
## Penalized Stress:  3.852559 
## Number of iterations: 506
  • Stress-1 value equals to 0.18, which is acceptable, but not ideal.

SPP graphs

plot(values_unf, plot.type = "stressplot")

Next I look at the SPP and check for influential observations. There are no influential outliers on the person side (1 observation has a SPP higher than 0.3).

On the variable side, the highest SPP values are the following:

  • imptrad - importance of traditions (8%);
  • ipstrgv - important that government ensures his safety against all threats (6.2%)
  • ipfrule - thinks that people should do what they are told (6.2%)
  • impsafe - avoids anything that might endanger his safety (6.2%).

Other variables have SPP values lower than 6%.

I conclude that no variable and no observation is an obvious outlier, thus, we can proceed with all observations and all variables.

Random stress check

stressvec <- randomstress(n=21, ndim = 2, nrep = 100, type = "ordinal")
mean(stressvec)
## [1] 0.303621
  • The average of 100 random dissimilarity matrices that fitted an MDS, equals to 0.3, which tells us that observed configuration (stress = 0.18) is better than random (stress = 0.3).

Permutation test

permtest(values_unf, sd, nrep = 100, verbose = F)
## 
## Call: permtest.smacofR(object = values_unf, data = sd, nrep = 100, 
##     verbose = F)
## 
## SMACOF Permutation Test
## Number of objects: 1462 
## Number of replications (permutations): 100 
## 
## Observed stress value: 0.179 
## p-value: <0.001
  • Since p-value is smaller than 0.05, we reject the H0 here, meaning that the observed configuration is not random, but has some structure within.

Visualization of Unfolding

library(ggplot2)
library(ggrepel)

conf_items <- as.data.frame(values_unf$conf.col)

ggplot(conf_items, aes(x = D1, y = D2)) +
  geom_point(size = 1, colour = "red", alpha = 0.5) + 
  coord_fixed(xlim = c(-1.5, 1.5), ylim = c(-1.5, 1.5)) + 
  xlab("") +
  ylab("") +
  geom_point(aes(x = D1, y = D2), conf_items, colour = "cadetblue") + 
  geom_text_repel(aes(x = D1, y = D2, label = rownames(conf_items)), 
            conf_items, colour = "cadetblue", vjust = 0.8) +
  ggtitle("Unfolding for Semantic Differential: Human Values of People in Sweden") +
  theme_bw()

The graph below may be better for the ease of intepretation

This graph shows the location of all 21 items in a two-dimensional MDS space.

  • Findings:

    • The configurations of 21 items reflect the approximately circular structure of individual values of people in Sweden as hypothesized by Schwartz (1992), which is interesting result.

    • At the very top of the graph there are closely located items that measure universalism (ipeqopt, ipudrst, impenv) and benevolence (iphlppl, iplylfr) - corresponds to the theory. All these 5 items oppose to variables located at the very bottom that measure power (imprich, iprspot) and achievement (ipshabt, ipsuces). Such location of items corresponds to the theory “The Schwartz Basic Values circle”, where self-enhancement (power and achievement) is opposing to self-transcendence (benevolence and universalism).

    • At the bottom right there are variables that measure security (impsafe, ipstrgv), tradition (one variable only - imptrad), and conformity (ipfrule, ipbhprp). One of the tradition item ipmodst (It is important to him to be humble and modest) is located between values of universalism and benevolence and between security, tradition, and conformity. All these 3 basic values (security, conformity, tradition) that generally reflect conservation oppose to variables, that measure self-direction (impfree, ipcrtiv) and hedonism (one variable only - impfun). Just below on the left there are other 3 variables that measure hedonism (one variable only - ipgdtim) and stimulation (impdiff, ipadvnt) - all of them corresponds to openness to change.

    • In general, the items intended to measure the same higher-order value were consistently located close to each other (except for one of the tradition item ipmodst), forming two sets of opposing poles: Openness vs. Conservation and Self-Enhancement vs. Self-Transcendence, respectively.